
<!DOCTYPE HTML>
<html lang="" >
    <head>
        <meta charset="UTF-8">
        <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
        <title>性能优化 · GitBook</title>
        <meta http-equiv="X-UA-Compatible" content="IE=edge" />
        <meta name="description" content="">
        <meta name="generator" content="GitBook 3.2.3">
        
        
        
    
    <link rel="stylesheet" href="gitbook/style.css">

    
            
                
                <link rel="stylesheet" href="gitbook/gitbook-plugin-highlight/website.css">
                
            
                
                <link rel="stylesheet" href="gitbook/gitbook-plugin-search/search.css">
                
            
                
                <link rel="stylesheet" href="gitbook/gitbook-plugin-fontsettings/website.css">
                
            
        

    

    
        
    
        
    
        
    
        
    
        
    
        
    

        
    
    
    <meta name="HandheldFriendly" content="true"/>
    <meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
    <meta name="apple-mobile-web-app-capable" content="yes">
    <meta name="apple-mobile-web-app-status-bar-style" content="black">
    <link rel="apple-touch-icon-precomposed" sizes="152x152" href="gitbook/images/apple-touch-icon-precomposed-152.png">
    <link rel="shortcut icon" href="gitbook/images/favicon.ico" type="image/x-icon">

    
    <link rel="next" href="Source-code.html" />
    
    
    <link rel="prev" href="Debug-tips.html" />
    

    </head>
    <body>
        
<div class="book">
    <div class="book-summary">
        
            
<div id="book-search-input" role="search">
    <input type="text" placeholder="Type to search" />
</div>

            
                <nav role="navigation">
                


<ul class="summary">
    
    

    

    
        
        
    
        <li class="chapter " data-level="1.1" data-path="./">
            
                <a href="./">
            
                    
                    关于
            
                </a>
            

            
        </li>
    

    
        
        <li class="header">Part I</li>
        
        
    
        <li class="chapter " data-level="2.1" data-path="Data-structure.html">
            
                <a href="Data-structure.html">
            
                    
                    数据结构
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="2.2" data-path="Arithmetic.html">
            
                <a href="Arithmetic.html">
            
                    
                    算法
            
                </a>
            

            
        </li>
    

    
        
        <li class="header">Part II</li>
        
        
    
        <li class="chapter " data-level="3.1" data-path="Foundation.html">
            
                <a href="Foundation.html">
            
                    
                    Foundation
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.2" data-path="UIKit.html">
            
                <a href="UIKit.html">
            
                    
                    UIKit
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.3" data-path="WebView.html">
            
                <a href="WebView.html">
            
                    
                    WebView
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.4" data-path="Memory-management.html">
            
                <a href="Memory-management.html">
            
                    
                    内存管理
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.5" data-path="Message-passing.html">
            
                <a href="Message-passing.html">
            
                    
                    消息传递的方式
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.6" data-path="Network.html">
            
                <a href="Network.html">
            
                    
                    网络
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.7" data-path="Data-storage.html">
            
                <a href="Data-storage.html">
            
                    
                    数据存储
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.8" data-path="Multi-thread.html">
            
                <a href="Multi-thread.html">
            
                    
                    多线程
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.9" data-path="Animation.html">
            
                <a href="Animation.html">
            
                    
                    动画
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.10" data-path="Image-processing.html">
            
                <a href="Image-processing.html">
            
                    
                    图像处理
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.11" data-path="Data-encryption.html">
            
                <a href="Data-encryption.html">
            
                    
                    数据安全及加密
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.12" data-path="Runtime.html">
            
                <a href="Runtime.html">
            
                    
                    Runtime
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="3.13" data-path="Runloop.html">
            
                <a href="Runloop.html">
            
                    
                    Runloop
            
                </a>
            

            
        </li>
    

    
        
        <li class="header">Part III</li>
        
        
    
        <li class="chapter " data-level="4.1" data-path="Project-organization.html">
            
                <a href="Project-organization.html">
            
                    
                    项目架构
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.2" data-path="Design-patterns.html">
            
                <a href="Design-patterns.html">
            
                    
                    设计模式
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.3" data-path="Component-based.html">
            
                <a href="Component-based.html">
            
                    
                    组件化
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.4" data-path="Debug-tips.html">
            
                <a href="Debug-tips.html">
            
                    
                    调试技巧
            
                </a>
            

            
        </li>
    
        <li class="chapter active" data-level="4.5" data-path="Performance-optimization.html">
            
                <a href="Performance-optimization.html">
            
                    
                    性能优化
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.6" data-path="Source-code.html">
            
                <a href="Source-code.html">
            
                    
                    源码理解
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.7" data-path="Code-management.html">
            
                <a href="Code-management.html">
            
                    
                    代码管理
            
                </a>
            

            
        </li>
    
        <li class="chapter " data-level="4.8" data-path="Continuous-integration.html">
            
                <a href="Continuous-integration.html">
            
                    
                    持续集成
            
                </a>
            

            
        </li>
    

    

    <li class="divider"></li>

    <li>
        <a href="https://www.gitbook.com" target="blank" class="gitbook-link">
            Published with GitBook
        </a>
    </li>
</ul>


                </nav>
            
        
    </div>

    <div class="book-body">
        
            <div class="body-inner">
                
                    

<div class="book-header" role="navigation">
    

    <!-- Title -->
    <h1>
        <i class="fa fa-circle-o-notch fa-spin"></i>
        <a href="." >性能优化</a>
    </h1>
</div>




                    <div class="page-wrapper" tabindex="-1" role="main">
                        <div class="page-inner">
                            
<div id="book-search-results">
    <div class="search-noresults">
    
                                <section class="normal markdown-section">
                                
                                <h1 id="&#x6027;&#x80FD;&#x4F18;&#x5316;">&#x6027;&#x80FD;&#x4F18;&#x5316;</h1>
<h2 id="1&#x9020;&#x6210;tableview&#x5361;&#x987F;&#x7684;&#x539F;&#x56E0;&#x6709;&#x54EA;&#x4E9B;&#xFF1F;">1.&#x9020;&#x6210;tableView&#x5361;&#x987F;&#x7684;&#x539F;&#x56E0;&#x6709;&#x54EA;&#x4E9B;&#xFF1F;</h2>
<ul>
<li><p>1.&#x6700;&#x5E38;&#x7528;&#x7684;&#x5C31;&#x662F;cell&#x7684;&#x91CD;&#x7528;&#xFF0C; &#x6CE8;&#x518C;&#x91CD;&#x7528;&#x6807;&#x8BC6;&#x7B26;</p>
<p>  &#x5982;&#x679C;&#x4E0D;&#x91CD;&#x7528;cell&#x65F6;&#xFF0C;&#x6BCF;&#x5F53;&#x4E00;&#x4E2A;cell&#x663E;&#x793A;&#x5230;&#x5C4F;&#x5E55;&#x4E0A;&#x65F6;&#xFF0C;&#x5C31;&#x4F1A;&#x91CD;&#x65B0;&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x65B0;&#x7684;cell</p>
<p>  &#x5982;&#x679C;&#x6709;&#x5F88;&#x591A;&#x6570;&#x636E;&#x7684;&#x65F6;&#x5019;&#xFF0C;&#x5C31;&#x4F1A;&#x5806;&#x79EF;&#x5F88;&#x591A;cell&#x3002;</p>
<p>  &#x5982;&#x679C;&#x91CD;&#x7528;cell&#xFF0C;&#x4E3A;cell&#x521B;&#x5EFA;&#x4E00;&#x4E2A;ID&#xFF0C;&#x6BCF;&#x5F53;&#x9700;&#x8981;&#x663E;&#x793A;cell &#x7684;&#x65F6;&#x5019;&#xFF0C;&#x90FD;&#x4F1A;&#x5148;&#x53BB;&#x7F13;&#x51B2;&#x6C60;&#x4E2D;&#x5BFB;&#x627E;&#x53EF;&#x5FAA;&#x73AF;&#x5229;&#x7528;&#x7684;cell&#xFF0C;&#x5982;&#x679C;&#x6CA1;&#x6709;&#x518D;&#x91CD;&#x65B0;&#x521B;&#x5EFA;cell</p>
</li>
<li><p>2.&#x907F;&#x514D;cell&#x7684;&#x91CD;&#x65B0;&#x5E03;&#x5C40;</p>
<p>  cell&#x7684;&#x5E03;&#x5C40;&#x586B;&#x5145;&#x7B49;&#x64CD;&#x4F5C; &#x6BD4;&#x8F83;&#x8017;&#x65F6;&#xFF0C;&#x4E00;&#x822C;&#x521B;&#x5EFA;&#x65F6;&#x5C31;&#x5E03;&#x5C40;&#x597D;</p>
<p>  &#x5982;&#x53EF;&#x4EE5;&#x5C06;cell&#x5355;&#x72EC;&#x653E;&#x5230;&#x4E00;&#x4E2A;&#x81EA;&#x5B9A;&#x4E49;&#x7C7B;&#xFF0C;&#x521D;&#x59CB;&#x5316;&#x65F6;&#x5C31;&#x5E03;&#x5C40;&#x597D;</p>
</li>
<li><p>3.&#x63D0;&#x524D;&#x8BA1;&#x7B97;&#x5E76;&#x7F13;&#x5B58;cell&#x7684;&#x5C5E;&#x6027;&#x53CA;&#x5185;&#x5BB9;</p>
<p>  &#x5F53;&#x6211;&#x4EEC;&#x521B;&#x5EFA;cell&#x7684;&#x6570;&#x636E;&#x6E90;&#x65B9;&#x6CD5;&#x65F6;&#xFF0C;&#x7F16;&#x8BD1;&#x5668;&#x5E76;&#x4E0D;&#x662F;&#x5148;&#x521B;&#x5EFA;cell &#x518D;&#x5B9A;cell&#x7684;&#x9AD8;&#x5EA6;</p>
<p>  &#x800C;&#x662F;&#x5148;&#x6839;&#x636E;&#x5185;&#x5BB9;&#x4E00;&#x6B21;&#x786E;&#x5B9A;&#x6BCF;&#x4E00;&#x4E2A;cell&#x7684;&#x9AD8;&#x5EA6;&#xFF0C;&#x9AD8;&#x5EA6;&#x786E;&#x5B9A;&#x540E;&#xFF0C;&#x518D;&#x521B;&#x5EFA;&#x8981;&#x663E;&#x793A;&#x7684;cell&#xFF0C;&#x6EDA;&#x52A8;&#x65F6;&#xFF0C;&#x6BCF;&#x5F53;cell&#x8FDB;&#x5165;&#x51ED;&#x865A;&#x90FD;&#x4F1A;&#x8BA1;&#x7B97;&#x9AD8;&#x5EA6;&#xFF0C;&#x63D0;&#x524D;&#x4F30;&#x7B97;&#x9AD8;&#x5EA6;&#x544A;&#x8BC9;&#x7F16;&#x8BD1;&#x5668;&#xFF0C;&#x7F16;&#x8BD1;&#x5668;&#x77E5;&#x9053;&#x9AD8;&#x5EA6;&#x540E;&#xFF0C;&#x7D27;&#x63A5;&#x7740;&#x5C31;&#x4F1A;&#x521B;&#x5EFA;cell&#xFF0C;&#x8FD9;&#x65F6;&#x518D;&#x8C03;&#x7528;&#x9AD8;&#x5EA6;&#x7684;&#x5177;&#x4F53;&#x8BA1;&#x7B97;&#x65B9;&#x6CD5;&#xFF0C;&#x8FD9;&#x6837;&#x53EF;&#x4EE5;&#x65B9;&#x5F0F;&#x6D6A;&#x8D39;&#x65F6;&#x95F4;&#x53BB;&#x8BA1;&#x7B97;&#x663E;&#x793A;&#x4EE5;&#x5916;&#x7684;cell</p>
</li>
<li><p>4.&#x51CF;&#x5C11;cell&#x4E2D;&#x63A7;&#x4EF6;&#x7684;&#x6570;&#x91CF;</p>
<p>  &#x5C3D;&#x91CF;&#x4F7F;cell&#x5F97;&#x5E03;&#x5C40;&#x5927;&#x81F4;&#x76F8;&#x540C;&#xFF0C;&#x4E0D;&#x540C;&#x98CE;&#x683C;&#x7684;cell&#x53EF;&#x4EE5;&#x4F7F;&#x7528;&#x4E0D;&#x7528;&#x7684;&#x91CD;&#x7528;&#x6807;&#x8BC6;&#x7B26;&#xFF0C;&#x521D;&#x59CB;&#x5316;&#x65F6;&#x6DFB;&#x52A0;&#x63A7;&#x4EF6;&#xFF0C;</p>
<p>  &#x4E0D;&#x9002;&#x7528;&#x7684;&#x53EF;&#x4EE5;&#x5148;&#x9690;&#x85CF;</p>
</li>
<li><p>5.&#x4E0D;&#x8981;&#x4F7F;&#x7528;ClearColor&#xFF0C;&#x65E0;&#x80CC;&#x666F;&#x8272;&#xFF0C;&#x900F;&#x660E;&#x5EA6;&#x4E5F;&#x4E0D;&#x8981;&#x8BBE;&#x7F6E;&#x4E3A;0</p>
<p>  &#x6E32;&#x67D3;&#x8017;&#x65F6;&#x6BD4;&#x8F83;&#x957F;</p>
</li>
<li><p>6.&#x4F7F;&#x7528;&#x5C40;&#x90E8;&#x66F4;&#x65B0;</p>
<p>  &#x5982;&#x679C;&#x53EA;&#x662F;&#x66F4;&#x65B0;&#x67D0;&#x7EC4;&#x7684;&#x8BDD;&#xFF0C;&#x4F7F;&#x7528;reloadSection&#x8FDB;&#x884C;&#x5C40;&#x90E8;&#x66F4;</p>
</li>
<li><p>7.&#x52A0;&#x8F7D;&#x7F51;&#x7EDC;&#x6570;&#x636E;&#xFF0C;&#x4E0B;&#x8F7D;&#x56FE;&#x7247;&#xFF0C;&#x4F7F;&#x7528;&#x5F02;&#x6B65;&#x52A0;&#x8F7D;&#xFF0C;&#x5E76;&#x7F13;&#x5B58;</p>
</li>
<li><p>8.&#x5C11;&#x4F7F;&#x7528;addView &#x7ED9;cell&#x52A8;&#x6001;&#x6DFB;&#x52A0;view</p>
</li>
<li><p>9.&#x6309;&#x9700;&#x52A0;&#x8F7D;cell&#xFF0C;cell&#x6EDA;&#x52A8;&#x5F88;&#x5FEB;&#x65F6;&#xFF0C;&#x53EA;&#x52A0;&#x8F7D;&#x8303;&#x56F4;&#x5185;&#x7684;cell</p>
</li>
<li><p>10.&#x4E0D;&#x8981;&#x5B9E;&#x73B0;&#x65E0;&#x7528;&#x7684;&#x4EE3;&#x7406;&#x65B9;&#x6CD5;&#xFF0C;tableView&#x53EA;&#x9075;&#x5B88;&#x4E24;&#x4E2A;&#x534F;&#x8BAE;</p>
</li>
<li><p>11.&#x7F13;&#x5B58;&#x884C;&#x9AD8;&#xFF1A;estimatedHeightForRow&#x4E0D;&#x80FD;&#x548C;HeightForRow&#x91CC;&#x9762;&#x7684;layoutIfNeed&#x540C;&#x65F6;&#x5B58;&#x5728;&#xFF0C;&#x8FD9;&#x4E24;&#x8005;&#x540C;&#x65F6;&#x5B58;&#x5728;&#x624D;&#x4F1A;&#x51FA;&#x73B0;&#x201C;&#x7A9C;&#x52A8;&#x201D;&#x7684;bug&#x3002;&#x6240;&#x4EE5;&#x6211;&#x7684;&#x5EFA;&#x8BAE;&#x662F;&#xFF1A;&#x53EA;&#x8981;&#x662F;&#x56FA;&#x5B9A;&#x884C;&#x9AD8;&#x5C31;&#x5199;&#x9884;&#x4F30;&#x884C;&#x9AD8;&#x6765;&#x51CF;&#x5C11;&#x884C;&#x9AD8;&#x8C03;&#x7528;&#x6B21;&#x6570;&#x63D0;&#x5347;&#x6027;&#x80FD;&#x3002;&#x5982;&#x679C;&#x662F;&#x52A8;&#x6001;&#x884C;&#x9AD8;&#x5C31;&#x4E0D;&#x8981;&#x5199;&#x9884;&#x4F30;&#x65B9;&#x6CD5;&#x4E86;&#xFF0C;&#x7528;&#x4E00;&#x4E2A;&#x884C;&#x9AD8;&#x7684;&#x7F13;&#x5B58;&#x5B57;&#x5178;&#x6765;&#x51CF;&#x5C11;&#x4EE3;&#x7801;&#x7684;&#x8C03;&#x7528;&#x6B21;&#x6570;&#x5373;&#x53EF;</p>
</li>
<li><p>12.&#x4E0D;&#x8981;&#x505A;&#x591A;&#x4F59;&#x7684;&#x7ED8;&#x5236;&#x5DE5;&#x4F5C;&#x3002;&#x5728;&#x5B9E;&#x73B0;drawRect:&#x7684;&#x65F6;&#x5019;&#xFF0C;&#x5B83;&#x7684;rect&#x53C2;&#x6570;&#x5C31;&#x662F;&#x9700;&#x8981;&#x7ED8;&#x5236;&#x7684;&#x533A;&#x57DF;&#xFF0C;&#x8FD9;&#x4E2A;&#x533A;&#x57DF;&#x4E4B;&#x5916;&#x7684;&#x4E0D;&#x9700;&#x8981;&#x8FDB;&#x884C;&#x7ED8;&#x5236;&#x3002;&#x4F8B;&#x5982;&#x4E0A;&#x4F8B;&#x4E2D;&#xFF0C;&#x5C31;&#x53EF;&#x4EE5;&#x7528;CGRectIntersectsRect&#x3001;CGRectIntersection&#x6216;CGRectContainsRect&#x5224;&#x65AD;&#x662F;&#x5426;&#x9700;&#x8981;&#x7ED8;&#x5236;image&#x548C;text&#xFF0C;&#x7136;&#x540E;&#x518D;&#x8C03;&#x7528;&#x7ED8;&#x5236;&#x65B9;&#x6CD5;&#x3002;</p>
</li>
<li><p>13.&#x9884;&#x6E32;&#x67D3;&#x56FE;&#x50CF;&#x3002;&#x5F53;&#x65B0;&#x7684;&#x56FE;&#x50CF;&#x51FA;&#x73B0;&#x65F6;&#xFF0C;&#x4ECD;&#x7136;&#x4F1A;&#x6709;&#x77ED;&#x6682;&#x7684;&#x505C;&#x987F;&#x73B0;&#x8C61;&#x3002;&#x89E3;&#x51B3;&#x7684;&#x529E;&#x6CD5;&#x5C31;&#x662F;&#x5728;bitmap context&#x91CC;&#x5148;&#x5C06;&#x5176;&#x753B;&#x4E00;&#x904D;&#xFF0C;&#x5BFC;&#x51FA;&#x6210;UIImage&#x5BF9;&#x8C61;&#xFF0C;&#x7136;&#x540E;&#x518D;&#x7ED8;&#x5236;&#x5230;&#x5C4F;&#x5E55;&#xFF1B;</p>
</li>
<li><p>14.&#x4F7F;&#x7528;&#x6B63;&#x786E;&#x7684;&#x6570;&#x636E;&#x7ED3;&#x6784;&#x6765;&#x5B58;&#x50A8;&#x6570;&#x636E;&#x3002;</p>
</li>
</ul>
<h2 id="2&#x5982;&#x4F55;&#x63D0;&#x5347;-tableview-&#x7684;&#x6D41;&#x7545;&#x5EA6;&#xFF1F;">2.&#x5982;&#x4F55;&#x63D0;&#x5347; tableview &#x7684;&#x6D41;&#x7545;&#x5EA6;&#xFF1F;</h2>
<ul>
<li><p>&#x672C;&#x8D28;&#x4E0A;&#x662F;&#x964D;&#x4F4E; CPU&#x3001;GPU &#x7684;&#x5DE5;&#x4F5C;&#xFF0C;&#x4ECE;&#x8FD9;&#x4E24;&#x4E2A;&#x5927;&#x7684;&#x65B9;&#x9762;&#x53BB;&#x63D0;&#x5347;&#x6027;&#x80FD;&#x3002;</p>
<p>  CPU&#xFF1A;&#x5BF9;&#x8C61;&#x7684;&#x521B;&#x5EFA;&#x548C;&#x9500;&#x6BC1;&#x3001;&#x5BF9;&#x8C61;&#x5C5E;&#x6027;&#x7684;&#x8C03;&#x6574;&#x3001;&#x5E03;&#x5C40;&#x8BA1;&#x7B97;&#x3001;&#x6587;&#x672C;&#x7684;&#x8BA1;&#x7B97;&#x548C;&#x6392;&#x7248;&#x3001;&#x56FE;&#x7247;&#x7684;&#x683C;&#x5F0F;&#x8F6C;&#x6362;&#x548C;&#x89E3;&#x7801;&#x3001;&#x56FE;&#x50CF;&#x7684;&#x7ED8;&#x5236;</p>
<p>  GPU&#xFF1A;&#x7EB9;&#x7406;&#x7684;&#x6E32;&#x67D3;</p>
</li>
<li><p>&#x5361;&#x987F;&#x4F18;&#x5316;&#x5728; CPU &#x5C42;&#x9762;</p>
<p>  &#x5C3D;&#x91CF;&#x7528;&#x8F7B;&#x91CF;&#x7EA7;&#x7684;&#x5BF9;&#x8C61;&#xFF0C;&#x6BD4;&#x5982;&#x7528;&#x4E0D;&#x5230;&#x4E8B;&#x4EF6;&#x5904;&#x7406;&#x7684;&#x5730;&#x65B9;&#xFF0C;&#x53EF;&#x4EE5;&#x8003;&#x8651;&#x4F7F;&#x7528; CALayer &#x53D6;&#x4EE3; UIView</p>
<p>  &#x4E0D;&#x8981;&#x9891;&#x7E41;&#x5730;&#x8C03;&#x7528; UIView &#x7684;&#x76F8;&#x5173;&#x5C5E;&#x6027;&#xFF0C;&#x6BD4;&#x5982; frame&#x3001;bounds&#x3001;transform &#x7B49;&#x5C5E;&#x6027;&#xFF0C;&#x5C3D;&#x91CF;&#x51CF;&#x5C11;&#x4E0D;&#x5FC5;&#x8981;&#x7684;&#x4FEE;&#x6539;</p>
<p>  &#x5C3D;&#x91CF;&#x63D0;&#x524D;&#x8BA1;&#x7B97;&#x597D;&#x5E03;&#x5C40;&#xFF0C;&#x5728;&#x6709;&#x9700;&#x8981;&#x65F6;&#x4E00;&#x6B21;&#x6027;&#x8C03;&#x6574;&#x5BF9;&#x5E94;&#x7684;&#x5C5E;&#x6027;&#xFF0C;&#x4E0D;&#x8981;&#x591A;&#x6B21;&#x4FEE;&#x6539;&#x5C5E;&#x6027;</p>
<p>  Autolayout &#x4F1A;&#x6BD4;&#x76F4;&#x63A5;&#x8BBE;&#x7F6E; frame &#x6D88;&#x8017;&#x66F4;&#x591A;&#x7684; CPU &#x8D44;&#x6E90;</p>
<p>  &#x56FE;&#x7247;&#x7684; size &#x6700;&#x597D;&#x521A;&#x597D;&#x8DDF; UIImageView &#x7684; size &#x4FDD;&#x6301;&#x4E00;&#x81F4;</p>
<p>  &#x63A7;&#x5236;&#x4E00;&#x4E0B;&#x7EBF;&#x7A0B;&#x7684;&#x6700;&#x5927;&#x5E76;&#x53D1;&#x6570;&#x91CF;</p>
<p>  &#x5C3D;&#x91CF;&#x628A;&#x8017;&#x65F6;&#x7684;&#x64CD;&#x4F5C;&#x653E;&#x5230;&#x5B50;&#x7EBF;&#x7A0B;</p>
<p>  &#x6587;&#x672C;&#x5904;&#x7406;&#xFF08;&#x5C3A;&#x5BF8;&#x8BA1;&#x7B97;&#x3001;&#x7ED8;&#x5236;&#xFF09;</p>
<p>  &#x56FE;&#x7247;&#x5904;&#x7406;&#xFF08;&#x89E3;&#x7801;&#x3001;&#x7ED8;&#x5236;&#xFF09;</p>
</li>
<li><p>&#x5361;&#x987F;&#x4F18;&#x5316;&#x5728; GPU&#x5C42;&#x9762;</p>
<p>  &#x5C3D;&#x91CF;&#x907F;&#x514D;&#x77ED;&#x65F6;&#x95F4;&#x5185;&#x5927;&#x91CF;&#x56FE;&#x7247;&#x7684;&#x663E;&#x793A;&#xFF0C;&#x5C3D;&#x53EF;&#x80FD;&#x5C06;&#x591A;&#x5F20;&#x56FE;&#x7247;&#x5408;&#x6210;&#x4E00;&#x5F20;&#x8FDB;&#x884C;&#x663E;&#x793A;</p>
<p>  GPU&#x80FD;&#x5904;&#x7406;&#x7684;&#x6700;&#x5927;&#x7EB9;&#x7406;&#x5C3A;&#x5BF8;&#x662F; 4096x4096&#xFF0C;&#x4E00;&#x65E6;&#x8D85;&#x8FC7;&#x8FD9;&#x4E2A;&#x5C3A;&#x5BF8;&#xFF0C;&#x5C31;&#x4F1A;&#x5360;&#x7528; CPU &#x8D44;&#x6E90;&#x8FDB;&#x884C;&#x5904;&#x7406;&#xFF0C;&#x6240;&#x4EE5;&#x7EB9;&#x7406;&#x5C3D;&#x91CF;&#x4E0D;&#x8981;&#x8D85;&#x8FC7;&#x8FD9;&#x4E2A;&#x5C3A;&#x5BF8;</p>
<p>  &#x5C3D;&#x91CF;&#x51CF;&#x5C11;&#x89C6;&#x56FE;&#x6570;&#x91CF;&#x548C;&#x5C42;&#x6B21;</p>
<p>  &#x51CF;&#x5C11;&#x900F;&#x660E;&#x7684;&#x89C6;&#x56FE;&#xFF08;alpha&lt;1&#xFF09;&#xFF0C;&#x4E0D;&#x900F;&#x660E;&#x7684;&#x5C31;&#x8BBE;&#x7F6E; opaque &#x4E3A; YES</p>
<p>  &#x5C3D;&#x91CF;&#x907F;&#x514D;&#x51FA;&#x73B0;&#x79BB;&#x5C4F;&#x6E32;&#x67D3;</p>
</li>
<li><p>iOS &#x4FDD;&#x6301;&#x754C;&#x9762;&#x6D41;&#x7545;&#x7684;&#x6280;&#x5DE7;</p>
<p>  1.&#x9884;&#x6392;&#x7248;&#xFF0C;&#x63D0;&#x524D;&#x8BA1;&#x7B97;</p>
<p>  &#x5728;&#x63A5;&#x6536;&#x5230;&#x670D;&#x52A1;&#x7AEF;&#x8FD4;&#x56DE;&#x7684;&#x6570;&#x636E;&#x540E;&#xFF0C;&#x5C3D;&#x91CF;&#x5C06; CoreText &#x6392;&#x7248;&#x7684;&#x7ED3;&#x679C;&#x3001;&#x5355;&#x4E2A;&#x63A7;&#x4EF6;&#x7684;&#x9AD8;&#x5EA6;&#x3001;cell &#x6574;&#x4F53;&#x7684;&#x9AD8;&#x5EA6;&#x63D0;&#x524D;&#x8BA1;&#x7B97;&#x597D;&#xFF0C;&#x5C06;&#x5176;&#x5B58;&#x50A8;&#x5728;&#x6A21;&#x578B;&#x7684;&#x5C5E;&#x6027;&#x4E2D;&#x3002;&#x9700;&#x8981;&#x4F7F;&#x7528;&#x65F6;&#xFF0C;&#x76F4;&#x63A5;&#x4ECE;&#x6A21;&#x578B;&#x4E2D;&#x5F80;&#x5916;&#x53D6;&#xFF0C;&#x907F;&#x514D;&#x4E86;&#x8BA1;&#x7B97;&#x7684;&#x8FC7;&#x7A0B;&#x3002;</p>
<p>  &#x5C3D;&#x91CF;&#x5C11;&#x7528; UILabel&#xFF0C;&#x53EF;&#x4EE5;&#x4F7F;&#x7528; CALayer &#x3002;&#x907F;&#x514D;&#x4F7F;&#x7528; AutoLayout &#x7684;&#x81EA;&#x52A8;&#x5E03;&#x5C40;&#x6280;&#x672F;&#xFF0C;&#x91C7;&#x53D6;&#x7EAF;&#x4EE3;&#x7801;&#x7684;&#x65B9;&#x5F0F;</p>
<p>  2.&#x9884;&#x6E32;&#x67D3;&#xFF0C;&#x63D0;&#x524D;&#x7ED8;&#x5236;</p>
<p>  &#x4F8B;&#x5982;&#x5706;&#x5F62;&#x7684;&#x56FE;&#x6807;&#x53EF;&#x4EE5;&#x63D0;&#x524D;&#x5728;&#xFF0C;&#x5728;&#x63A5;&#x6536;&#x5230;&#x7F51;&#x7EDC;&#x8FD4;&#x56DE;&#x6570;&#x636E;&#x65F6;&#xFF0C;&#x5728;&#x540E;&#x53F0;&#x7EBF;&#x7A0B;&#x8FDB;&#x884C;&#x5904;&#x7406;&#xFF0C;&#x76F4;&#x63A5;&#x5B58;&#x50A8;&#x5728;&#x6A21;&#x578B;&#x6570;&#x636E;&#x91CC;&#xFF0C;&#x56DE;&#x5230;&#x4E3B;&#x7EBF;&#x7A0B;&#x540E;&#x76F4;&#x63A5;&#x8C03;&#x7528;&#x5C31;&#x53EF;&#x4EE5;&#x4E86;</p>
<p>  &#x907F;&#x514D;&#x4F7F;&#x7528; CALayer &#x7684; Border&#x3001;corner&#x3001;shadow&#x3001;mask &#x7B49;&#x6280;&#x672F;&#xFF0C;&#x8FD9;&#x4E9B;&#x90FD;&#x4F1A;&#x89E6;&#x53D1;&#x79BB;&#x5C4F;&#x6E32;&#x67D3;&#x3002;</p>
<p>  3.&#x5F02;&#x6B65;&#x7ED8;&#x5236;</p>
<p>  4.&#x5168;&#x5C40;&#x5E76;&#x53D1;&#x7EBF;&#x7A0B;</p>
<p>  5.&#x9AD8;&#x6548;&#x7684;&#x56FE;&#x7247;&#x5F02;&#x6B65;&#x52A0;&#x8F7D;</p>
</li>
</ul>
<h2 id="3app&#x542F;&#x52A8;&#x65F6;&#x95F4;&#x5E94;&#x4ECE;&#x54EA;&#x4E9B;&#x65B9;&#x9762;&#x4F18;&#x5316;&#xFF1F;">3.APP&#x542F;&#x52A8;&#x65F6;&#x95F4;&#x5E94;&#x4ECE;&#x54EA;&#x4E9B;&#x65B9;&#x9762;&#x4F18;&#x5316;&#xFF1F;</h2>
<p>App&#x542F;&#x52A8;&#x65F6;&#x95F4;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;xcode&#x63D0;&#x4F9B;&#x7684;&#x5DE5;&#x5177;&#x6765;&#x5EA6;&#x91CF;&#xFF0C;&#x5728;Xcode&#x7684;Product-&gt;Scheme--&gt;Edit Scheme-&gt;Run-&gt;Auguments&#x4E2D;&#xFF0C;&#x5C06;&#x73AF;&#x5883;&#x53D8;&#x91CF;DYLD_PRINT_STATISTICS&#x8BBE;&#x4E3A;YES&#xFF0C;&#x4F18;&#x5316;&#x9700;&#x4EE5;&#x4E0B;&#x65B9;&#x9762;&#x5165;&#x624B;</p>
<ul>
<li><p>dylib loading time</p>
<p>  &#x6838;&#x5FC3;&#x601D;&#x60F3;&#x662F;&#x51CF;&#x5C11;dylibs&#x7684;&#x5F15;&#x7528;</p>
<p>  &#x5408;&#x5E76;&#x73B0;&#x6709;&#x7684;dylibs&#xFF08;&#x6700;&#x597D;&#x662F;6&#x4E2A;&#x4EE5;&#x5185;&#xFF09;</p>
<p>  &#x4F7F;&#x7528;&#x9759;&#x6001;&#x5E93;</p>
</li>
<li><p>rebase/binding time</p>
<p>  &#x6838;&#x5FC3;&#x601D;&#x60F3;&#x662F;&#x51CF;&#x5C11;DATA&#x5757;&#x5185;&#x7684;&#x6307;&#x9488;</p>
<p>  &#x51CF;&#x5C11;Object C&#x5143;&#x6570;&#x636E;&#x91CF;&#xFF0C;&#x51CF;&#x5C11;Objc&#x7C7B;&#x6570;&#x91CF;&#xFF0C;&#x51CF;&#x5C11;&#x5B9E;&#x4F8B;&#x53D8;&#x91CF;&#x548C;&#x51FD;&#x6570;&#xFF08;&#x4E0E;&#x9762;&#x5411;&#x5BF9;&#x8C61;&#x8BBE;&#x8BA1;&#x601D;&#x60F3;&#x51B2;&#x7A81;&#xFF09;</p>
<p>  &#x51CF;&#x5C11;c++&#x865A;&#x51FD;&#x6570;</p>
<p>  &#x591A;&#x4F7F;&#x7528;Swift&#x7ED3;&#x6784;&#x4F53;&#xFF08;&#x63A8;&#x8350;&#x4F7F;&#x7528;swift&#xFF09;</p>
</li>
<li><p>ObjC setup time</p>
<p>  &#x6838;&#x5FC3;&#x601D;&#x60F3;&#x540C;&#x4E0A;&#xFF0C;&#x8FD9;&#x90E8;&#x5206;&#x5185;&#x5BB9;&#x57FA;&#x672C;&#x4E0A;&#x5728;&#x4E0A;&#x4E00;&#x9636;&#x6BB5;&#x4F18;&#x5316;&#x8FC7;&#x540E;&#x5C31;&#x4E0D;&#x4F1A;&#x592A;&#x8FC7;&#x8017;&#x65F6;</p>
<p>  initializer time</p>
</li>
<li><p>&#x4F7F;&#x7528;initialize&#x66FF;&#x4EE3;load&#x65B9;&#x6CD5;</p>
<p>  &#x51CF;&#x5C11;&#x4F7F;&#x7528;c/c++&#x7684;attribute((constructor))&#xFF1B;&#x63A8;&#x8350;&#x4F7F;&#x7528;dispatch_once() pthread_once() std:once()&#x7B49;&#x65B9;&#x6CD5;</p>
<p>  &#x63A8;&#x8350;&#x4F7F;&#x7528;swift</p>
<p>  &#x4E0D;&#x8981;&#x5728;&#x521D;&#x59CB;&#x5316;&#x4E2D;&#x8C03;&#x7528;dlopen()&#x65B9;&#x6CD5;&#xFF0C;&#x56E0;&#x4E3A;&#x52A0;&#x8F7D;&#x8FC7;&#x7A0B;&#x662F;&#x5355;&#x7EBF;&#x7A0B;&#xFF0C;&#x65E0;&#x9501;&#xFF0C;&#x5982;&#x679C;&#x8C03;&#x7528;dlopen&#x5219;&#x4F1A;&#x53D8;&#x6210;&#x591A;&#x7EBF;&#x7A0B;&#xFF0C;&#x4F1A;&#x5F00;&#x542F;&#x9501;&#x7684;&#x6D88;&#x8017;&#xFF0C;&#x540C;&#x65F6;&#x6709;&#x53EF;&#x80FD;&#x6B7B;&#x9501;</p>
<p>  &#x4E0D;&#x8981;&#x5728;&#x521D;&#x59CB;&#x5316;&#x4E2D;&#x521B;&#x5EFA;&#x7EBF;&#x7A0B;</p>
</li>
</ul>
<h2 id="4&#x5982;&#x4F55;&#x964D;&#x4F4E;app&#x5305;&#x7684;&#x5927;&#x5C0F;">4.&#x5982;&#x4F55;&#x964D;&#x4F4E;APP&#x5305;&#x7684;&#x5927;&#x5C0F;</h2>
<p>&#x964D;&#x4F4E;&#x5305;&#x5927;&#x5C0F;&#x9700;&#x8981;&#x4ECE;&#x4E24;&#x65B9;&#x9762;&#x7740;&#x624B;</p>
<ul>
<li><p>&#x53EF;&#x6267;&#x884C;&#x6587;&#x4EF6;</p>
<p>  &#x7F16;&#x8BD1;&#x5668;&#x4F18;&#x5316;&#xFF1A;Strip Linked Product&#x3001;Make Strings Read-Only&#x3001;Symbols Hidden by Default &#x8BBE;&#x7F6E;&#x4E3A; YES&#xFF0C;&#x53BB;&#x6389;&#x5F02;&#x5E38;&#x652F;&#x6301;&#xFF0C;Enable C++ Exceptions&#x3001;Enable Objective-C Exceptions &#x8BBE;&#x7F6E;&#x4E3A; NO&#xFF0C; Other C Flags &#x6DFB;&#x52A0; -fno-exceptions
&#x5229;&#x7528; AppCode &#x68C0;&#x6D4B;&#x672A;&#x4F7F;&#x7528;&#x7684;&#x4EE3;&#x7801;&#xFF1A;&#x83DC;&#x5355;&#x680F; -&gt; Code -&gt; Inspect Code</p>
<p>  &#x7F16;&#x5199;LLVM&#x63D2;&#x4EF6;&#x68C0;&#x6D4B;&#x51FA;&#x91CD;&#x590D;&#x4EE3;&#x7801;&#x3001;&#x672A;&#x88AB;&#x8C03;&#x7528;&#x7684;&#x4EE3;&#x7801;</p>
</li>
<li><p>&#x8D44;&#x6E90;&#xFF08;&#x56FE;&#x7247;&#x3001;&#x97F3;&#x9891;&#x3001;&#x89C6;&#x9891; &#x7B49;&#xFF09;</p>
<p>  &#x4F18;&#x5316;&#x7684;&#x65B9;&#x5F0F;&#x53EF;&#x4EE5;&#x5BF9;&#x8D44;&#x6E90;&#x8FDB;&#x884C;&#x65E0;&#x635F;&#x7684;&#x538B;&#x7F29;</p>
<p>  &#x53BB;&#x9664;&#x6CA1;&#x6709;&#x7528;&#x5230;&#x7684;&#x8D44;&#x6E90;&#xFF1A; <a href="https://github.com/tinymind/LSUnusedResources" target="_blank">https://github.com/tinymind/LSUnusedResources</a></p>
</li>
</ul>
<h2 id="5&#x5982;&#x4F55;&#x68C0;&#x6D4B;&#x79BB;&#x5C4F;&#x6E32;&#x67D3;&#x4E0E;&#x4F18;&#x5316;">5.&#x5982;&#x4F55;&#x68C0;&#x6D4B;&#x79BB;&#x5C4F;&#x6E32;&#x67D3;&#x4E0E;&#x4F18;&#x5316;</h2>
<ul>
<li><p>&#x68C0;&#x6D4B;&#xFF0C;&#x901A;&#x8FC7;&#x52FE;&#x9009;Xcode&#x7684;Debug-&gt;View Debugging--&gt;Rendering-&gt;Run-&gt;Color Offscreen-Rendered Yellow&#x9879;&#x3002;</p>
</li>
<li><p>&#x4F18;&#x5316;&#xFF0C;&#x5982;&#x9634;&#x5F71;&#xFF0C;&#x5728;&#x7ED8;&#x5236;&#x65F6;&#x6DFB;&#x52A0;&#x9634;&#x5F71;&#x7684;&#x8DEF;&#x5F84;</p>
</li>
</ul>
<h2 id="6&#x600E;&#x4E48;&#x68C0;&#x6D4B;&#x56FE;&#x5C42;&#x6DF7;&#x5408;">6.&#x600E;&#x4E48;&#x68C0;&#x6D4B;&#x56FE;&#x5C42;&#x6DF7;&#x5408;</h2>
<p>1&#x3001;&#x6A21;&#x62DF;&#x5668;debug&#x4E2D;color blended layers&#x7EA2;&#x8272;&#x533A;&#x57DF;&#x8868;&#x793A;&#x56FE;&#x5C42;&#x53D1;&#x751F;&#x4E86;&#x6DF7;&#x5408;</p>
<p>2&#x3001;Instrument-&#x9009;&#x4E2D;Core Animation-&#x52FE;&#x9009;Color Blended Layers</p>
<p>&#x907F;&#x514D;&#x56FE;&#x5C42;&#x6DF7;&#x5408;&#xFF1A;</p>
<ul>
<li><p>&#x786E;&#x4FDD;&#x63A7;&#x4EF6;&#x7684;opaque&#x5C5E;&#x6027;&#x8BBE;&#x7F6E;&#x4E3A;true&#xFF0C;&#x786E;&#x4FDD;backgroundColor&#x548C;&#x7236;&#x89C6;&#x56FE;&#x989C;&#x8272;&#x4E00;&#x81F4;&#x4E14;&#x4E0D;&#x900F;&#x660E;</p>
</li>
<li><p>&#x5982;&#x65E0;&#x7279;&#x6B8A;&#x9700;&#x8981;&#xFF0C;&#x4E0D;&#x8981;&#x8BBE;&#x7F6E;&#x4F4E;&#x4E8E;1&#x7684;alpha&#x503C;</p>
</li>
<li><p>&#x786E;&#x4FDD;UIImage&#x6CA1;&#x6709;alpha&#x901A;&#x9053;</p>
</li>
</ul>
<p>UILabel&#x56FE;&#x5C42;&#x6DF7;&#x5408;&#x89E3;&#x51B3;&#x65B9;&#x6CD5;&#xFF1A;</p>
<p>iOS8&#x4EE5;&#x540E;&#x8BBE;&#x7F6E;&#x80CC;&#x666F;&#x8272;&#x4E3A;&#x975E;&#x900F;&#x660E;&#x8272;&#x5E76;&#x4E14;&#x8BBE;&#x7F6E;label.layer.masksToBounds=YES&#x8BA9;label&#x53EA;&#x4F1A;&#x6E32;&#x67D3;&#x5979;&#x7684;&#x5B9E;&#x9645;size&#x533A;&#x57DF;&#xFF0C;&#x5C31;&#x80FD;&#x89E3;&#x51B3;UILabel&#x7684;&#x56FE;&#x5C42;&#x6DF7;&#x5408;&#x95EE;&#x9898;</p>
<p>iOS8 &#x4E4B;&#x524D;&#x53EA;&#x8981;&#x8BBE;&#x7F6E;&#x80CC;&#x666F;&#x8272;&#x4E3A;&#x975E;&#x900F;&#x660E;&#x7684;&#x5C31;&#x884C;</p>
<p>&#x4E3A;&#x4EC0;&#x4E48;&#x8BBE;&#x7F6E;&#x4E86;&#x80CC;&#x666F;&#x8272;&#x4F46;&#x662F;&#x5728;iOS8&#x4E0A;&#x4ECD;&#x7136;&#x51FA;&#x73B0;&#x4E86;&#x56FE;&#x5C42;&#x6DF7;&#x5408;&#x5462;&#xFF1F;</p>
<p>UILabel&#x5728;iOS8&#x524D;&#x540E;&#x7684;&#x53D8;&#x5316;&#xFF0C;&#x5728;iOS8&#x4EE5;&#x524D;&#xFF0C;UILabel&#x4F7F;&#x7528;&#x7684;&#x662F;CALayer&#x4F5C;&#x4E3A;&#x5E95;&#x56FE;&#x5C42;&#xFF0C;&#x800C;&#x5728;iOS8&#x5F00;&#x59CB;&#xFF0C;UILabel&#x7684;&#x5E95;&#x56FE;&#x5C42;&#x53D8;&#x6210;&#x4E86;_UILabelLayer&#xFF0C;&#x7ED8;&#x5236;&#x6587;&#x672C;&#x4E5F;&#x6709;&#x6240;&#x6539;&#x53D8;&#x3002;&#x5728;&#x80CC;&#x666F;&#x8272;&#x7684;&#x56DB;&#x5468;&#x591A;&#x4E86;&#x4E00;&#x5708;&#x900F;&#x660E;&#x7684;&#x8FB9;&#xFF0C;&#x800C;&#x8FD9;&#x4E00;&#x5708;&#x900F;&#x660E;&#x7684;&#x8FB9;&#x660E;&#x663E;&#x8D85;&#x51FA;&#x4E86;&#x56FE;&#x5C42;&#x7684;&#x77E9;&#x5F62;&#x533A;&#x57DF;&#xFF0C;&#x8BBE;&#x7F6E;&#x56FE;&#x5C42;&#x7684;masksToBounds&#x4E3A;YES&#x65F6;&#xFF0C;&#x56FE;&#x5C42;&#x5C06;&#x4F1A;&#x6CBF;&#x7740;Bounds&#x8FDB;&#x884C;&#x88C1;&#x526A; &#x56FE;&#x5C42;&#x6DF7;&#x5408;&#x95EE;&#x9898;&#x89E3;&#x51B3;&#x4E86;</p>
<h2 id="7&#x65E5;&#x5E38;&#x5982;&#x4F55;&#x68C0;&#x67E5;&#x5185;&#x5B58;&#x6CC4;&#x9732;&#xFF1F;">7.&#x65E5;&#x5E38;&#x5982;&#x4F55;&#x68C0;&#x67E5;&#x5185;&#x5B58;&#x6CC4;&#x9732;&#xFF1F;</h2>
<ul>
<li><p>&#x76EE;&#x524D;&#x6211;&#x77E5;&#x9053;&#x7684;&#x65B9;&#x5F0F;&#x6709;&#x4EE5;&#x4E0B;&#x51E0;&#x79CD;</p>
<p>  Memory Leaks</p>
<p>  Alloctions</p>
<p>  Analyse</p>
<p>  Debug Memory Graph</p>
<p>  MLeaksFinder</p>
</li>
<li><p>&#x6CC4;&#x9732;&#x7684;&#x5185;&#x5B58;&#x4E3B;&#x8981;&#x6709;&#x4EE5;&#x4E0B;&#x4E24;&#x79CD;&#xFF1A;</p>
<p>  Laek Memory &#x8FD9;&#x79CD;&#x662F;&#x5FD8;&#x8BB0; Release &#x64CD;&#x4F5C;&#x6240;&#x6CC4;&#x9732;&#x7684;&#x5185;&#x5B58;&#x3002;</p>
<p>  Abandon Memory &#x8FD9;&#x79CD;&#x662F;&#x5FAA;&#x73AF;&#x5F15;&#x7528;&#xFF0C;&#x65E0;&#x6CD5;&#x91CA;&#x653E;&#x6389;&#x7684;&#x5185;&#x5B58;&#x3002;</p>
</li>
</ul>

                                
                                </section>
                            
    </div>
    <div class="search-results">
        <div class="has-results">
            
            <h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
            <ul class="search-results-list"></ul>
            
        </div>
        <div class="no-results">
            
            <h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
            
        </div>
    </div>
</div>

                        </div>
                    </div>
                
            </div>

            
                
                <a href="Debug-tips.html" class="navigation navigation-prev " aria-label="Previous page: 调试技巧">
                    <i class="fa fa-angle-left"></i>
                </a>
                
                
                <a href="Source-code.html" class="navigation navigation-next " aria-label="Next page: 源码理解">
                    <i class="fa fa-angle-right"></i>
                </a>
                
            
        
    </div>

    <script>
        var gitbook = gitbook || [];
        gitbook.push(function() {
            gitbook.page.hasChanged({"page":{"title":"性能优化","level":"4.5","depth":1,"next":{"title":"源码理解","level":"4.6","depth":1,"path":"Source-code.md","ref":"Source-code.md","articles":[]},"previous":{"title":"调试技巧","level":"4.4","depth":1,"path":"Debug-tips.md","ref":"Debug-tips.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["livereload"],"pluginsConfig":{"livereload":{},"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"Performance-optimization.md","mtime":"2020-04-13T10:23:32.000Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2020-05-27T09:12:21.691Z"},"basePath":".","book":{"language":""}});
        });
    </script>
</div>

        
    <script src="gitbook/gitbook.js"></script>
    <script src="gitbook/theme.js"></script>
    
        
        <script src="gitbook/gitbook-plugin-livereload/plugin.js"></script>
        
    
        
        <script src="gitbook/gitbook-plugin-search/search-engine.js"></script>
        
    
        
        <script src="gitbook/gitbook-plugin-search/search.js"></script>
        
    
        
        <script src="gitbook/gitbook-plugin-lunr/lunr.min.js"></script>
        
    
        
        <script src="gitbook/gitbook-plugin-lunr/search-lunr.js"></script>
        
    
        
        <script src="gitbook/gitbook-plugin-sharing/buttons.js"></script>
        
    
        
        <script src="gitbook/gitbook-plugin-fontsettings/fontsettings.js"></script>
        
    

    </body>
</html>

